package com.ly.system.system.bean.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;

/**
 * 通用消息-dto
 *
 * @author luoyun
 * @since 2025-05-29
 */
@Data
@Schema(description = "通用消息dto")
public class SysMessageDTO {

    /**
     * id
     */
    @Schema(description = "id")
    private String id;
    /**
     * 用户id
     */
    @Schema(description = "用户id")
    private String userId;
    /**
     * 标题
     */
    @Schema(description = "标题")
    private String title;
    /**
     * 发布人
     */
    @Schema(description = "发布人")
    private String sender;
    /**
     * 接收人
     */
    @Schema(description = "接收人")
    private String receiver;
    /**
     * 优先级（L低，M中，H高）
     */
    @Schema(description = "优先级（L低，M中，H高）")
    private String priority;
    /**
     * 阅读状态（0未读，1已读）
     */
    @Schema(description = "阅读状态（0未读，1已读）")
    private java.lang.Integer readFlag;
    /**
     * 标星状态
     */
    @Schema(description = "标星状态")
    private java.lang.Integer starFlag;
    /**
     * 发布时间
     */
    @Schema(description = "发布时间")
    private java.util.Date sendTime;
    /**
     * 消息类型1:通知公告2:系统消息
     */
    @Schema(description = "消息类型1:通知公告2:系统消息")
    private String msgCategory;
    /**
     * 业务id
     */
    @Schema(description = "业务id")
    private String busId;
    /**
     * 业务类型
     */
    @Schema(description = "业务类型")
    private String busType;

    /**
     * 日期自定义格式 @link: RangeDateEnum
     */
    @Schema(description = "日期自定义格式")
    private String rangeDateKey;

    /**
     * 租户ID
     */
    @Schema(description = "租户ID")
    private java.lang.Integer tenantId;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    private Date startDate;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    private String beginDate;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    private String endDate;

    /**
     * 是否已读排序
     */
    @Schema(description = "是否已读排序")
    private String readFlagSort;

    /**
     * 是否严格按照权限查询自己的，高于管理员权限
     */
    @Schema(description = "是否严格按照权限查询")
    private Integer authFlag;

}